package com.philosophy.web.task;

import com.philosophy.web.filter.RedirectFilter;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;

/**
 * <p>
 * 考虑到由于系统的使用，短链接的创建可能会越来越多，而布隆过滤器的大小不变的话可能会导致误判率升高
 * 所以每月的最后一天执行重新替换布隆过滤器，不会影响应用得使用
 * </p>
 *
 * @author philosophy
 */
@Component
public class BloomFilterTask {

    @Resource
    private RedirectFilter redirectFilter;

    @Scheduled(cron = "0 0 0 L * ? ")
    public void reloadBloomFilter() throws Exception {
        redirectFilter.run();
    }
}
